home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / 2336A.ZIP / SCRDISK1.EXE / arc / SKELETON.P < prev    next >
Text File  |  1990-03-04  |  5KB  |  203 lines

  1. {----------------------------------------------------------------------------
  2.                         Turbo ScrEdit Skeleton v.1.0
  3.  
  4.                        for Turbo Pascal 4.0, 5.0, 5.5
  5.  
  6. Refer to TURBO SCREDIT TUTOR - PART 2 for a complete discussion on how
  7. this file is to be used.
  8.  
  9. ----------------------------------------------------------------------------}
  10.  
  11. {---**Version**---}
  12.  
  13.  
  14.  
  15.  
  16. {---**Buffers**---}
  17.  
  18.  
  19.  
  20.  
  21. {----**User Variables**----}
  22. Var
  23. Load_Screen_No      : Integer;
  24. Demo_Screen_Pointer : Byte;
  25. Demo_Mode,
  26. Demo_Current_Screen : Integer;
  27.  
  28.  
  29.  
  30.  
  31. {----** Example of loading and displaying screens**----}
  32.  
  33. Procedure Load_Screen;
  34. Begin
  35. S_Num := 0;
  36. Repeat
  37.     Demo_Screen_Pointer := Demo_Screen_Pointer + 1;
  38.     Case Demo_Screen_Pointer of
  39.  
  40. {---**Screens**---}
  41.  
  42.     Else
  43.         Demo_Screen_Pointer := 0;
  44.     End;{Case Of}
  45. Until S_Num > 0;
  46.  
  47. S_UserMsg := '<F1> change screen  <ESC> exit  Press special keys for demo ';
  48.  
  49. End;
  50.  
  51.  
  52. Procedure Initialize_Program;
  53. Begin
  54.  
  55.  
  56. {---**ScreenFileName**---};
  57.  
  58.  
  59.  
  60. {---**InitRoutines**---}
  61.  
  62.  
  63.  
  64. {---**System Switches**----}
  65.  
  66. S_ErrorSound   := True;
  67. S_ErrorFreq    := 300;
  68. S_ErrorDur     := 50;
  69. S_ErrorBg      := Red;
  70. S_ErrorFg      := Yellow;
  71.  
  72. S_HelpSound    := True;
  73. S_HelpFreq     := 200;
  74. S_HelpDur      := 50;
  75. S_HelpBg       := Blue;
  76. S_HelpFg       := Cyan;
  77.  
  78. S_UserSound    := True;
  79. S_UserFreq     := 100;
  80. S_UserDur      := 50;
  81. S_UserBg       := Black;
  82. S_UserFg       := White;
  83. S_UserMsg      := '';
  84.  
  85. S_ShowStatus   := True;
  86. S_StBg         := Black;
  87. S_StFg         := Green;
  88. S_StLabelBg    := LightGray;
  89. S_StLabelFg    := Black;
  90.  
  91. S_EnterAsTab   := False;
  92. S_AutoHelp     := False;
  93. S_AutoValidate := False;
  94.  
  95. S_Cursor       := S_Normal;
  96. S_Point        := 0;
  97.  
  98.  
  99.  
  100. {----** 1st Example Code **----}
  101.  
  102. Demo_Screen_Pointer := 0;
  103. Demo_Mode           := 1;
  104. Load_Screen;
  105. End;
  106.  
  107.  
  108. Procedure Process_Screen_File;
  109. Begin
  110.  
  111.  
  112. {----** Demo mode 1  -  Full Screen Mode **----}
  113.  
  114. If  (Demo_Mode = 1) Then
  115.     S_ReadScreen;
  116.  
  117.  
  118. {----** Demo mode 2  -  Individule Field Mode **----}
  119.  
  120. If  Demo_Mode = 2 Then
  121.     Repeat
  122.         S_Point := S_Point + 1;
  123.         While (S_Point = 0) Or (S_Field^.S_Type[S_Point] > 9) Do
  124.             Begin
  125.             S_Point := S_Point + 1;
  126.             If  S_Point > S_Indx^.S_Count[S_Num] Then
  127.                 S_Point := 0;
  128.             End;
  129.         If  S_UserMsg = '' Then
  130.             Begin
  131.             Str(S_point:3,S_UserMsg);
  132.             S_UserMsg := 'Field <' + S_UserMsg+ '>';
  133.             End;
  134.         S_READFIELD;
  135.     Until (S_Alt) Or (S_Ctrl) Or (S_Fkey) Or (S_Enter);
  136.  
  137.  
  138.  
  139.  
  140. {----** Example code for demonstration mode **----}
  141. If  (S_F1) Then
  142.     Begin
  143.     S_UserMsg := 'Press any key to load the next screen';
  144.     S_ReadKey;
  145.     Load_Screen;
  146.     End;
  147.  
  148.  
  149. {----**Special Key Testing**----}
  150.  
  151.  
  152. If  (S_FKey) And (Not S_F1) Then
  153.     Begin
  154.     S_UserMsg := '< >';
  155.     If  S_Ch > #00 Then S_UserMsg[2] := S_Ch;
  156.  
  157.     If  S_ScrollLock Then S_UserMsg := S_UserMsg + '<Scroll Lock>';
  158.     If  S_NumLock    Then S_UserMsg := S_UserMsg + '<Num Lock>';
  159.     If  S_Caps       Then S_UserMsg := S_UserMsg + '<Caps>';
  160.     If  S_InsertMode Then S_UserMsg := S_UserMsg + '<Insert Mode>';
  161.     If  S_LeftShift  Then S_UserMsg := S_UserMsg + '<Left Shift>';
  162.     If  S_RightShift Then S_UserMsg := S_UserMsg + '<Right Shift>';
  163.     If  S_Alt        Then S_UserMsg := S_UserMsg + '< Alt  >';
  164.     If  S_Ctrl       Then S_UserMsg := S_UserMsg + '< Ctrl >';
  165.     If  S_Esc        Then S_UserMsg := S_UserMsg + '<Escape>';
  166.     If  S_F1         Then S_UserMsg := S_UserMsg + '<F1>';
  167.     If  S_F2         Then S_UserMsg := S_UserMsg + '<F2>';
  168.     If  S_F3         Then S_UserMsg := S_UserMsg + '<F3>';
  169.     If  S_F4         Then S_UserMsg := S_UserMsg + '<F4>';
  170.     If  S_F5         Then S_UserMsg := S_UserMsg + '<F5>';
  171.     If  S_F6         Then S_UserMsg := S_UserMsg + '<F6>';
  172.     If  S_F7         Then S_UserMsg := S_UserMsg + '<F7>';
  173.     If  S_F8         Then S_UserMsg := S_UserMsg + '<F8>';
  174.     If  S_F9         Then S_UserMsg := S_UserMsg + '<F9>';
  175.     If  S_F10        Then S_UserMsg := S_UserMsg + '<F10>';
  176.     If  S_F11        Then S_UserMsg := S_UserMsg + '<F11>';
  177.     If  S_F12        Then S_UserMsg := S_UserMsg + '<F12>';
  178.     If  S_Home       Then S_UserMsg := S_UserMsg + '<Home>';
  179.     If  S_End        Then S_UserMsg := S_UserMsg + '<End>';
  180.     If  S_PgUp       Then S_UserMsg := S_UserMsg + '<PgUp>';
  181.     If  S_PgDn       Then S_UserMsg := S_UserMsg + '<PgDn>';
  182.     If  S_Left       Then S_UserMsg := S_UserMsg + '<Left>';
  183.     If  S_Right      Then S_UserMsg := S_UserMsg + '<Right>';
  184.     If  S_Up         Then S_UserMsg := S_UserMsg + '<Up>';
  185.     If  S_Down       Then S_UserMsg := S_UserMsg + '<Down> ';
  186.     If  S_Ins        Then S_UserMsg := S_UserMsg + '<Insert>';
  187.     If  S_Del        Then S_UserMsg := S_UserMsg + '<Delete>';
  188.     If  S_Tab        Then S_UserMsg := S_UserMsg + '<Tab>';
  189.     If  S_BkSp       Then S_UserMsg := S_UserMsg + '<BkSp>';
  190.     If  S_ENTER      Then S_UserMsg := S_UserMsg + '<Enter>';
  191.     End;
  192. End;
  193.  
  194. Begin
  195. Initialize_Program;
  196.  
  197. While (Not S_Esc) Do Process_Screen_File;
  198.  
  199. {----** Closing the Screen file **----};
  200.  
  201. S_CloseScreenFile;
  202. End.
  203.